package com.ztesoft.book.core.wx.pay.service;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.node.ObjectNode;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 微信小程序用户信息管理
 *
 * @author 杨帆
 * 创建时间：2021-07-20
 */
public interface WechatPayService {


    /**
     * 方法功能描述:
     * < 预支付订单统一生成方法 >
     *
     * @param goodsNode 参数说明
     * @return JSONObject
     * @author YangFan
     * @date 2021-07-28 16:25
     */
    String createPrepay(ObjectNode goodsNode);


    /**
     * 方法功能描述:
     * < 查单接口 >
     *
     * @param orderId 参数说明
     * @return JSONObject
     * @author YangFan
     * @date 2021-08-05 22:36
     */
    JSONObject getOrder(String orderId);


    /**
     * 方法功能描述:
     * < 关单接口 >
     *
     * @param orderId 参数说明
     * @return void
     * @author YangFan
     * @date 2021-08-05 22:59
     */
    void closeOrder(String orderId);


    /**
     * 方法功能描述:
     * < 预支付ID签名 >
     *
     * @param prepayId 参数说明
     * @param appId    参数说明
     * @return JSONObject
     * @author YangFan
     * @date 2021-07-29 08:44
     */
    JSONObject wxTuneUp(String prepayId, String appId);


    /**
     * 方法功能描述:
     * < 在此输入描述内容 >
     *
     * @param request  参数说明
     * @param response 参数说明
     * @return String
     * @author YangFan
     * @date 2021-07-29 17:57
     */
    JSONObject notify(HttpServletRequest request, HttpServletResponse response);


    /**
     * 方法功能描述:
     * < 退款申请接口，实际使用直接调用service方法即可 >
     *
     * @param goodsNode 参数说明
     * @return void
     * @author YangFan
     * @date 2021-07-30 15:26
     */
    JSONObject createRefund(ObjectNode goodsNode);


}
